LinuxQMISDK  SLQS04.00.27
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
lite-fw.h
Go to the documentation of this file.
1 
13 #ifndef _LITE_FW_H_
14 #define _LITE_FW_H_
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /* Pragmas */
21 #pragma once
22 #include "qmerrno.h"
23 #include "fms.h"
24 #include "dms.h"
25 
26 #define IMG_MASK_MDM (1<<0)
27 #define IMG_MASK_PRI (1<<1)
28 #define IMG_MASK_CLEAR (0x000)
29 #define IMG_MASK_GENERIC (0xFFFF)
30 
31 // Carrier package SKU Info
32 #define LITEFW_CARRIER_PACKAGE_SKU "9999999"
33 #define LITEFW_SKU_STRING_LENGTH 7
34 
35 // Fimware Info String size
36 #define FIRMWARE_INFO_STRING_SIZE 20
37 #define NULL_TERMINATOR_CHAR_SIZE 1
38 #define FIRMWARE_IMAGE_SIZE_MAX 512
39 #define FIRMWARE_BCHVERSTRSIZE 84
40 #define FIRMWARE_BCHDATESIZE 8
41 #define MAX_IMAGE_PRODUCT_LENGTH 10
42 
43 /* error Codes */
45 {
46  eSDP_FWDWL_SUCCESS = 0, // Success
47  eSDP_FWDWL_ERR_GENERAL = 100, // 100 - Generic FW download error
48  eSDP_FWDWL_ERR_SDK, // 101 - SDK specific error. Please check syslog for SDK error codes
49  eSDP_FWDWL_ERR_SET_CBK, // 102 - Error in setting SDK callbacks
50  eSDP_FWDWL_ERR_PATH_TOO_LONG, // 103 - Path is too long
51  eSDP_FWDWL_ERR_PATH_NOT_SPECIFIED, // 104 - Mandatory SDK/FW path not set
52  eSDP_FWDWL_ERR_FW_UPGRADE, // 105 - Post FW download check indicates that the FW upgrade has failed.
53  // For example, PRI not updated as expected, FW version not updated etc
54  eSDP_FWDWL_ERR_INVALID_DEV, // 106 - Invalid device
55  eSDP_FWDWL_ERR_INVALID_PATH, // 107 - Invalid Path or No valid firmware or nvu file exist in the path
56  eSDP_FWDWL_ERR_TIMEOUT, // 108 - Download Process Timeout
57  eSDP_FWDWL_ERR_FAIL, // 109 - Download Process Fail
58  eSDP_FWDWL_ERR_PRI_FAIL, // 110 - Download PRI Fail
59  eSDP_FWDWL_ERR_FW_VERSION_FAIL, // 111 - Download Fail Version Not Match
60  eSDP_FWDWL_ERR_SDP_TIMEOUT, // 112 - SSDP mode timeout
61  eFIREHOSE_ERR_SECBOOT_INVALID_CERT_CHAIN,// 113 - Secure boot invalid certificate chain
62  eFIREHOSE_ERR_RC7611_RETRY_TEST,// 114 - RC7611 swtich to firehose mode fail
63  eLITE_FWDWL_APP_ERR_RC7611_ERROR_AFTER_RETRY,// 115 RC7611 switch to firehose mode failed after retry
65 };
66 
67 // Match this enum with fw_image_type_e in imudefs.h
69  eFW_TYPE_MBN_GOBI, // Not supported in litefw
70  eFW_TYPE_MBN, // Not supported in litefw
71  eFW_TYPE_CWE, //CWE File
72  eFW_TYPE_NVU, //NVU File
73  eFW_TYPE_SPK, //SPK File
74  eFW_TYPE_INVALID, //Invalid File
75  eFW_TYPE_CWE_NVU, //CWE and NVU
76 };
77 
78 
79 /*************
80  *
81  * Name: litefw_fileimgtype
82  *
83  * Purpose: Enumerate different PRI type
84  *
85  * Members: eFILE_TYPE_NONE - Start of list
86  * eFILE_TYPE_CAR_PRI - Carrier PRI file (file name starts with &ldquo;9999999_&rdquo;)
87  * eFILE_TYPE_OEM_PRI - OEM PRI file (file name strats with valid SKU such as &ldquo;1104125_&rdquo;)
88  * eFILE_TYPE_COMPO_PRI - A compound PRI files contain both Carrier PRI and OEM PRI
89  */
91 {
96 };
97 
98 /*************
99  *
100  * Name: litefw_bcimagetype
101  *
102  * Purpose: Enumerate some supported BC image types
103  *
104  * Members: eIMAGE_TYPE_MIN - Start of list
105  * eIMAGE_TYPE_BOOT - boot composite image
106  * eIMAGE_TYPE_APPL - application composite image
107  * eIMAGE_TYPE_AMSS - amss
108  * eIMAGE_TYPE_APPS - apps such as yocto image
109  * eIMAGE_TYPE_FILE - Generic file such as Carrier PRI
110  * eIMAGE_TYPE_SPKG - Sierra package, spk image, OEM PRI image
111  * eIMAGE_TYPE_MODM - modem composite image, modem firmware cwe image
112  * eIMAGE_TYPE_USER - image for 0:USERDATA, e.g. legato
113  * eIMAGE_TYPE_KEYS, - Keystore image, signed key information
114  * eIMAGE_TYPE_MAX - End of list
115  * eIMAGE_TYPE_INVALID - invalid image type
116  * eIMAGE_TYPE_ANY - any image type
117  *
118  * Notes: none
119  *
120  **************/
122 {
135 };
136 
137 
138 /* Model Family */
147 };
148 
149 /* QDL mode */
155 };
156 
157 /* QDL mode Hardware flow control */
163 };
164 
172 void litefw_logsenable(int log_en);
173 
197 typedef struct _litefw_FirmwareInfo_
198 {
206 
217 {
220 
255 {
257  uint8_t imageMask;
269 
286 
302 int litefw_ExtractFirmwarePartNoByPath(char *pImagePath, litefw_FirmwarePartNo *partno);
303 
320 
333 
346 int litefw_getFileType(char* szPath);
347 
375 unsigned int litefw_DownloadFW(char *pImagePath,char *szTTYPath,int iFWImageType, int image_mask, int iModelFamily);
376 
389 int litefw_GetModelFamily(char *pModelString);
390 
401 
402 
409 char* litefw_GetVersion();
410 
411 
424 typedef void (* litefwlogger)(uint8_t lvl, const char* buff);
425 
437 
447 void litefw_SetReadBlockSize(unsigned long lBlockSize);
448 
449 
460 int litefw_switch_9x07_to_downloadmode(char *szTTYPath);
461 
462 
472 int litefw_switch_to_BootHoldMode(char *szTTYPath);
473 
484 int litefw_SetQTLDownloadMode(int iMode);
485 
493 
504 int litefw_SetQTLHWFlowControl(int iMode);
505 
514 
532  char *fullFilePath,
534  uint8_t *pNumOfItems);
535 
536 
537 void litefw_SetRetryFirehoseSwitch(int mode);
538 
540 
541 
547 unsigned long GetFlashSectorSize();
548 
558 void SetFlashSectorSize(unsigned long ulSize);
559 
560 #define libSDP_GetVersion litefw_GetVersion
561 #define libSDP_CalculateImageMask litefw_CalculateImageMask
562 #define libSDP_getFileType litefw_getFileType
563 #define libSDP_ExtractFirmwareParametersByPath litefw_ExtractFirmwareParametersByPath
564 #define libSDP_GetModelFamily litefw_GetModelFamily
565 #define libSDP_CheckValidFirmwareInfo litefw_CheckValidFirmwareInfo
566 #define libSDP_BuildImagesPreferenceRequest litefw_BuildImagesPreferenceRequest
567 #define libSDP_DownloadFW litefw_DownloadFW
568 #define libsdp_set_log_func litefw_set_log_func
569 #define libsdp_SetReadBlockSize litefw_SetReadBlockSize
570 #define LIBSDP_CARRIER_PACKAGE_SKU LITEFW_CARRIER_PACKAGE_SKU
571 #define LIBSDP_SKU_STRING_LENGTH LITEFW_SKU_STRING_LENGTH
574 
575 #ifdef __cplusplus
576 } /* extern "C" { */
577 #endif
578 
579 #endif // _LITE_FW_H_
580 
struct _litefw_FirmwarePartNo_ litefw_FirmwarePartNo
Definition: lite-fw.h:94
litefw_QDL_FLOW_CONTROLs
Definition: lite-fw.h:158
void litefw_SetReadBlockSize(unsigned long lBlockSize)
eQCWWANError
Definition: qmerrno.h:19
enum litefw_imagetype headerType
Definition: lite-fw.h:258
Definition: lite-fw.h:124
Definition: lite-fw.h:145
Definition: lite-fw.h:55
char * litefw_GetVersion()
Definition: lite-fw.h:95
#define NULL_TERMINATOR_CHAR_SIZE
Definition: lite-fw.h:37
Definition: lite-fw.h:130
Definition: lite-fw.h:69
litefw_fwdwl_error_codes
Definition: lite-fw.h:44
Definition: lite-fw.h:161
int litefw_ExtractFirmwarePartNoByPath(char *pImagePath, litefw_FirmwarePartNo *partno)
unsigned long GetFlashSectorSize()
char versionStr[84]
Definition: lite-fw.h:266
Definition: lite-fw.h:60
Definition: lite-fw.h:52
Definition: lite-fw.h:93
char szCarrierPriversion_str[20+1]
Definition: lite-fw.h:204
int litefw_CalculateImageMask(unpack_fms_SetImagesPreference_t SetPrefRspFromModem)
char szFwversion_str[20+1]
Definition: lite-fw.h:200
Definition: lite-fw.h:70
Definition: lite-fw.h:54
void SetFlashSectorSize(unsigned long ulSize)
Definition: lite-fw.h:50
#define FIRMWARE_INFO_STRING_SIZE
Definition: lite-fw.h:36
Definition: lite-fw.h:48
Definition: lite-fw.h:123
int litefw_BuildImagesPreferenceRequest(litefw_FirmwareInfo info, pack_fms_SetImagesPreference_t *pack)
Definition: lite-fw.h:51
enum litefw_fileimgtype imageType
Definition: lite-fw.h:259
Definition: lite-fw.h:132
int litefw_getFileType(char *szPath)
char modelIdStr[20+1]
Definition: lite-fw.h:260
Definition: lite-fw.h:154
Definition: lite-fw.h:71
int litefw_GetQTLDownloadMode()
void(* litefwlogger)(uint8_t lvl, const char *buff)
Definition: lite-fw.h:424
Definition: lite-fw.h:153
Definition: lite-fw.h:152
litefw_imagetype
Definition: lite-fw.h:121
Definition: lite-fw.h:146
char skuStr[20+1]
Definition: lite-fw.h:262
litefwlogger libsdplogger
Definition: lite-fw.h:573
char priVersionStr[20+1]
Definition: lite-fw.h:265
int litefw_switch_to_BootHoldMode(char *szTTYPath)
Definition: lite-fw.h:73
int litefw_switch_9x07_to_downloadmode(char *szTTYPath)
Definition: lite-fw.h:56
struct _litefw_FirmwareFileInfo litefw_FirmwareFileInfo
uint8_t imageMask
Definition: lite-fw.h:257
char packageIdStr[20+1]
Definition: lite-fw.h:263
char fullPath[512]
Definition: lite-fw.h:256
Definition: lite-fw.h:47
litefw_Fw_Type
Definition: lite-fw.h:68
Definition: lite-fw.h:126
Definition: lite-fw.h:141
char szModelid_str[20+1]
Definition: lite-fw.h:199
Definition: lite-fw.h:59
Definition: lite-fw.h:159
Definition: lite-fw.h:140
char carrierStr[20+1]
Definition: lite-fw.h:264
enum eQCWWANError litefw_SLQSGetFirmwareFileInfo(char *fullFilePath, litefw_FirmwareFileInfo *info, uint8_t *pNumOfItems)
Definition: lite-fw.h:197
void litefw_logsenable(int log_en)
unsigned int litefw_DownloadFW(char *pImagePath, char *szTTYPath, int iFWImageType, int image_mask, int iModelFamily)
#define FIRMWARE_BCHVERSTRSIZE
Definition: lite-fw.h:39
litefw_fileimgtype
Definition: lite-fw.h:90
Definition: lite-fw.h:144
char partNoStr[20+1]
Definition: lite-fw.h:261
Definition: lite-fw.h:64
Definition: lite-fw.h:74
Definition: lite-fw.h:62
Definition: lite-fw.h:134
int litefw_GetModelFamily(char *pModelString)
Definition: lite-fw.h:131
Definition: lite-fw.h:92
litefw_FirmwareInfo libSDP_FirmwareInfo
Definition: lite-fw.h:572
char szPackageid_str[20+1]
Definition: lite-fw.h:202
Definition: lite-fw.h:142
int litefw_SetQTLHWFlowControl(int iMode)
Definition: lite-fw.h:49
Definition: lite-fw.h:216
Definition: lite-fw.h:128
char szPartno_str[20+1]
Definition: lite-fw.h:218
int litefw_GetQTLHWFlowControl()
struct _litefw_FirmwareInfo_ litefw_FirmwareInfo
void litefw_SetRetryFirehoseSwitch(int mode)
Definition: lite-fw.h:46
int litefw_CheckValidFirmwareInfo(litefw_FirmwareInfo info)
char szSku_str[20+1]
Definition: lite-fw.h:201
Definition: lite-fw.h:75
#define FIRMWARE_BCHDATESIZE
Definition: lite-fw.h:40
Definition: lite-fw.h:254
litefw_QDL_MODEs
Definition: lite-fw.h:150
Definition: lite-fw.h:133
Definition: lite-fw.h:58
Definition: lite-fw.h:125
char szCarrier_str[20+1]
Definition: lite-fw.h:203
Definition: lite-fw.h:162
Definition: lite-fw.h:129
int litefw_ExtractFirmwareParametersByPath(char *pImagePath, litefw_FirmwareInfo *info)
char releaseDate[8]
Definition: lite-fw.h:267
int litefw_SetQTLDownloadMode(int iMode)
Definition: lite-fw.h:160
Definition: fms.h:343
int litefw_set_log_func(litefwlogger *func)
Definition: lite-fw.h:151
int litefw_GetRetryFirehoseSwitch()
#define FIRMWARE_IMAGE_SIZE_MAX
Definition: lite-fw.h:38
Definition: lite-fw.h:57
Definition: lite-fw.h:72
litefw_Models
Definition: lite-fw.h:139
Definition: lite-fw.h:127
Definition: lite-fw.h:143

Copyright (c) 2011-2015 Sierra Wireless, Inc. All rights reserved